In order to ensure the quality of software applications, quality assurance (e.g., QA) engineers use a variety of tools and procedures. For example, if an application has been modified, QA engineers test the application in order to ensure that additional bugs have not been introduced. Automated testing tools that perform regression testing are typically used to test the quality of a software application. WinRunner, by Mercury Interactive, is an example of an automated testing tool.
Regression testing is a quality control measure to ensure that newly modified code still complies with its specified requirements and that unmodified code has not been affected by any modifications. Regression testing is often used to the selectively retest a software application that has been modified to ensure that any bugs have been fixed. Furthermore, regression testing can be used to ensure that no other previously-working functions have failed as a result of the reparations and that newly added features have not created problems with previous versions of the software.
Depending on the complexity of the application being tested, a regression test script can take a long time for a QA engineer to create. Similarly, for complex applications, a large number of QA engineers may be testing the application to ensure its quality. Often, different QA engineers may be testing similar aspects of the application. Unfortunately, regression tests used by one QA engineer are not easily shared, requiring each QA engineer to create and maintain their own regression test scripts.
Furthermore, regression test scripts often require external data to operate. For example, in the WinRunner automated testing tool, an external GUImap is used to store physical descriptions of objects of regression test scripts. Each regression test script requires a GUImap to function properly. Since GUImaps are specific to a particular regression test script, it is typically not possible to share GUImaps between QA engineers, requiring each QA engineer to create and maintain their own GUImaps.
Requiring QA engineers to create and maintain their own regression test scripts and GUImaps presents a number of disadvantages. For one, the work to create and test scripts and their associated GUImaps is often duplicated across several QA engineers, resulting in duplication of work and decreased productivity. Furthermore, even if a regression test script is shared among a number of QA engineers, if a change is made to the regression test script, it must be made by every QA engineer in every regression test script and its associated GUImap. Currently, due to the typical practice of QA engineers maintaining several GUImaps with different versions, maintenance of regression test scripts and GUImaps is very time consuming and further reduces productivity.